		package co.edu.udea.iw.rest;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import co.edu.udea.iw.dao.service.sucursalService;
import co.edu.udea.iw.dto.SucursalWS;
import co.edu.udea.iw.dto.sucursal;
import co.edu.udea.iw.exception.waDaoException;
import co.edu.udea.iw.exception.waServiceException;

@Path("sucursal")
@Component
public class ServicioSucursal {
	@Autowired
	private sucursalService sucursalService;

	@Produces(MediaType.APPLICATION_XML)
	@GET
	public List<SucursalWS> consultar() throws RemoteException {
		List<SucursalWS> sucursales = new ArrayList<SucursalWS>();
		List<sucursal> listaSucursales = null;
		try {
			listaSucursales = sucursalService.consultarSucursal();
			for (sucursal suc : listaSucursales) {
				SucursalWS sucursalWS = new SucursalWS();

				sucursalWS.setId_sucursal(suc.getId_sucursal());
				sucursalWS.setNombre(suc.getNombre());
				sucursalWS.setDireccion(suc.getDireccion());

				sucursales.add(sucursalWS);
			}
		} catch (waDaoException e) {
			throw new RemoteException(e.getMessage());
		}

		return sucursales;

	}
	
	@Produces(MediaType.TEXT_PLAIN)
	@POST
	public String guardarSucursal(@QueryParam("id_sucursal")String id_sucursal,@QueryParam("nombre")String nombre,@QueryParam("direccion")String direccion,@QueryParam("telefono")String telefono,@QueryParam("ciudad")String ciudad){
		
		try {
			sucursalService.guardarSucursal(id_sucursal, nombre, direccion, telefono, ciudad);
		} catch (waDaoException  e) {
			e.getMessage();
		}catch(waServiceException e){
			
			e.getMessage();
		}
		
		return "";
	}
	
	
	
	
	@Produces(MediaType.TEXT_PLAIN)
	@PUT
	public String actualizarSucursal(@QueryParam("id_sucursal")String id_sucursal,@QueryParam("nombre")String nombre,@QueryParam("direccion")String direccion,@QueryParam("telefono")String telefono,@QueryParam("ciudad")String ciudad){
		
		try {
			sucursalService.actualizarSucursal(id_sucursal, nombre, direccion, telefono, ciudad);
		} catch (waDaoException  e) {
			e.getMessage();
		}catch(waServiceException e){
			
			e.getMessage();
		}
		
		return "";
	}
	


	
	
	
	
	
	
}
